// 常用表单验证规则
export const validateRules = {
  // 手机号验证
  mobile: (rule, value, callback) => {
    const mobileRegex = /^1[3-9]\d{9}$/
    if (value && !mobileRegex.test(value)) {
      callback(new Error('请输入正确的手机号'))
    } else {
      callback()
    }
  },
  
  // 邮箱验证
  email: (rule, value, callback) => {
    const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
    if (value && !emailRegex.test(value)) {
      callback(new Error('请输入正确的邮箱地址'))
    } else {
      callback()
    }
  },
  
  // 身份证验证
  idCard: (rule, value, callback) => {
    const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    if (value && !idCardRegex.test(value)) {
      callback(new Error('请输入正确的身份证号码'))
    } else {
      callback()
    }
  },
  
  // 统一社会信用代码验证
  creditCode: (rule, value, callback) => {
    const creditCodeRegex = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/
    if (value && !creditCodeRegex.test(value)) {
      callback(new Error('请输入正确的统一社会信用代码'))
    } else {
      callback()
    }
  },
  
  // 数字验证
  number: (rule, value, callback) => {
    const numberRegex = /^\d+(\.\d+)?$/
    if (value && !numberRegex.test(value)) {
      callback(new Error('请输入有效的数字'))
    } else {
      callback()
    }
  },
  
  // 必填字段验证
  required: (message) => {
    return { required: true, message: message || '该字段为必填项', trigger: 'blur' }
  }
}

export default validateRules